﻿2026-06-04T02:39:10.1071426Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T02:39:10.1071741Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T02:39:10.1089748Z shell: /usr/bin/bash -e {0}
2026-06-04T02:39:10.1089934Z ##[endgroup]
2026-06-04T02:39:10.1261907Z Requirement quality findings (16); 128 requirements queued for agent review:
2026-06-04T02:39:10.1263137Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1264716Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T02:39:10.1265751Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1266706Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1267644Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T02:39:10.1268560Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T02:39:10.1269721Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1271102Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1271878Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T02:39:10.1272571Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T02:39:10.1273132Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T02:39:10.1273728Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:39:10.1274580Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1275381Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:39:10.1275990Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:39:10.1276565Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T02:39:10.1276592Z 
2026-06-04T02:39:10.1276809Z # Requirement quality review
2026-06-04T02:39:10.1276829Z 
2026-06-04T02:39:10.1277266Z You are reviewing 128 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T02:39:10.1277706Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T02:39:10.1278137Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T02:39:10.1278471Z this command's output. Your task is the rubric items below.
2026-06-04T02:39:10.1278492Z 
2026-06-04T02:39:10.1278665Z ## Rubric
2026-06-04T02:39:10.1278685Z 
2026-06-04T02:39:10.1279322Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T02:39:10.1280004Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T02:39:10.1280471Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T02:39:10.1280790Z - **active-voice** — clear subject and active verb.
2026-06-04T02:39:10.1280826Z 
2026-06-04T02:39:10.1281304Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T02:39:10.1281484Z clear concerns.
2026-06-04T02:39:10.1281506Z 
2026-06-04T02:39:10.1281667Z ## Requirements
2026-06-04T02:39:10.1281685Z 
2026-06-04T02:39:10.1281858Z ### REQ-ARCH-1
2026-06-04T02:39:10.1282104Z - Title: Many small acyclically-layered crates
2026-06-04T02:39:10.1282623Z - Required stages: impl
2026-06-04T02:39:10.1282643Z 
2026-06-04T02:39:10.1282818Z ### REQ-ARCH-2
2026-06-04T02:39:10.1283140Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T02:39:10.1283332Z - Required stages: impl
2026-06-04T02:39:10.1283352Z 
2026-06-04T02:39:10.1283507Z ### REQ-ARCH-3
2026-06-04T02:39:10.1283930Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T02:39:10.1284138Z - Required stages: impl, unit
2026-06-04T02:39:10.1284157Z 
2026-06-04T02:39:10.1284313Z ### REQ-ARCH-4
2026-06-04T02:39:10.1284648Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T02:39:10.1284844Z - Required stages: impl, unit
2026-06-04T02:39:10.1284863Z 
2026-06-04T02:39:10.1285036Z ### REQ-DAEMON-1
2026-06-04T02:39:10.1285361Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T02:39:10.1285567Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1285599Z 
2026-06-04T02:39:10.1285777Z ### REQ-DAEMON-2
2026-06-04T02:39:10.1286047Z - Title: Broker/brain split for seamless self-update
2026-06-04T02:39:10.1286264Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1286284Z 
2026-06-04T02:39:10.1286456Z ### REQ-DAEMON-3
2026-06-04T02:39:10.1286749Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T02:39:10.1286961Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1287142Z 
2026-06-04T02:39:10.1287319Z ### REQ-DAEMON-4
2026-06-04T02:39:10.1287553Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T02:39:10.1287746Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1287777Z 
2026-06-04T02:39:10.1287943Z ### REQ-STORE-1
2026-06-04T02:39:10.1290037Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T02:39:10.1290248Z - Required stages: 
2026-06-04T02:39:10.1290270Z 
2026-06-04T02:39:10.1290455Z ### REQ-MANIFEST-1
2026-06-04T02:39:10.1290827Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T02:39:10.1291029Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1291049Z 
2026-06-04T02:39:10.1291244Z ### REQ-SEAM-SPAWN
2026-06-04T02:39:10.1291444Z - Title: spawn-session seam
2026-06-04T02:39:10.1291651Z - Required stages: impl, unit
2026-06-04T02:39:10.1291671Z 
2026-06-04T02:39:10.1291866Z ### REQ-SEAM-POSTSPAWN
2026-06-04T02:39:10.1292139Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T02:39:10.1292350Z - Required stages: impl, unit
2026-06-04T02:39:10.1292368Z 
2026-06-04T02:39:10.1292543Z ### REQ-SEAM-PSYCHE
2026-06-04T02:39:10.1292824Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T02:39:10.1293035Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1293067Z 
2026-06-04T02:39:10.1293257Z ### REQ-SEAM-HISTORY
2026-06-04T02:39:10.1293627Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T02:39:10.1293837Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1293854Z 
2026-06-04T02:39:10.1294039Z ### REQ-SEAM-ACTIVITY
2026-06-04T02:39:10.1294393Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T02:39:10.1305347Z - Required stages: impl, unit
2026-06-04T02:39:10.1305470Z 
2026-06-04T02:39:10.1305713Z ### REQ-SEAM-INJECT
2026-06-04T02:39:10.1306058Z - Title: inject-input methods configurable per activity-state
2026-06-04T02:39:10.1306264Z - Required stages: impl, unit
2026-06-04T02:39:10.1306283Z 
2026-06-04T02:39:10.1306456Z ### REQ-SEAM-RESUME
2026-06-04T02:39:10.1306822Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T02:39:10.1307029Z - Required stages: impl, unit
2026-06-04T02:39:10.1307050Z 
2026-06-04T02:39:10.1307233Z ### REQ-SEAM-CAPABILITY
2026-06-04T02:39:10.1307522Z - Title: Hostable endpoint-types capability declaration
2026-06-04T02:39:10.1308143Z - Required stages: impl, unit
2026-06-04T02:39:10.1308163Z 
2026-06-04T02:39:10.1308347Z ### REQ-SEAM-UPDATE
2026-06-04T02:39:10.1308675Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T02:39:10.1308882Z - Required stages: impl, unit
2026-06-04T02:39:10.1308900Z 
2026-06-04T02:39:10.1309089Z ### REQ-API-1
2026-06-04T02:39:10.1309479Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T02:39:10.1309701Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1309720Z 
2026-06-04T02:39:10.1309883Z ### REQ-API-2
2026-06-04T02:39:10.1310302Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T02:39:10.1310523Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1310541Z 
2026-06-04T02:39:10.1310707Z ### REQ-API-3
2026-06-04T02:39:10.1310985Z - Title: commune/signoff are file-drops, not commands
2026-06-04T02:39:10.1311191Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1311221Z 
2026-06-04T02:39:10.1311401Z ### REQ-START-1
2026-06-04T02:39:10.1311794Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T02:39:10.1311994Z - Required stages: impl, unit
2026-06-04T02:39:10.1312015Z 
2026-06-04T02:39:10.1312189Z ### REQ-START-2
2026-06-04T02:39:10.1312453Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T02:39:10.1312838Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1312860Z 
2026-06-04T02:39:10.1313032Z ### REQ-START-3
2026-06-04T02:39:10.1313368Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T02:39:10.1313579Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1313597Z 
2026-06-04T02:39:10.1313761Z ### REQ-START-4
2026-06-04T02:39:10.1314032Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T02:39:10.1314242Z - Required stages: impl, unit
2026-06-04T02:39:10.1314259Z 
2026-06-04T02:39:10.1314417Z ### REQ-EP-1
2026-06-04T02:39:10.1314671Z - Title: Day-one endpoint types; open type system
2026-06-04T02:39:10.1314882Z - Required stages: impl, unit
2026-06-04T02:39:10.1314900Z 
2026-06-04T02:39:10.1315072Z ### REQ-EP-2
2026-06-04T02:39:10.1315394Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T02:39:10.1315605Z - Required stages: impl, unit
2026-06-04T02:39:10.1315623Z 
2026-06-04T02:39:10.1315789Z ### REQ-EP-3
2026-06-04T02:39:10.1316160Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T02:39:10.1316373Z - Required stages: impl, unit
2026-06-04T02:39:10.1316392Z 
2026-06-04T02:39:10.1316555Z ### REQ-EP-4
2026-06-04T02:39:10.1316849Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T02:39:10.1317053Z - Required stages: impl, unit
2026-06-04T02:39:10.1317072Z 
2026-06-04T02:39:10.1317230Z ### REQ-EP-5
2026-06-04T02:39:10.1318638Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T02:39:10.1318832Z - Required stages: 
2026-06-04T02:39:10.1318863Z 
2026-06-04T02:39:10.1319027Z ### REQ-INST-1
2026-06-04T02:39:10.1319393Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T02:39:10.1319737Z - Required stages: 
2026-06-04T02:39:10.1319767Z 
2026-06-04T02:39:10.1319946Z ### REQ-INST-2
2026-06-04T02:39:10.1320166Z - Title: Per-node files, synced Psyche mind
2026-06-04T02:39:10.1320343Z - Required stages: 
2026-06-04T02:39:10.1320360Z 
2026-06-04T02:39:10.1320521Z ### REQ-INST-3
2026-06-04T02:39:10.1320792Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T02:39:10.1320970Z - Required stages: 
2026-06-04T02:39:10.1320986Z 
2026-06-04T02:39:10.1321139Z ### REQ-INST-4
2026-06-04T02:39:10.1321478Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T02:39:10.1321657Z - Required stages: 
2026-06-04T02:39:10.1321674Z 
2026-06-04T02:39:10.1321989Z ### REQ-INST-5
2026-06-04T02:39:10.1322338Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T02:39:10.1322511Z - Required stages: 
2026-06-04T02:39:10.1322529Z 
2026-06-04T02:39:10.1322698Z ### REQ-INST-6
2026-06-04T02:39:10.1323055Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T02:39:10.1323246Z - Required stages: 
2026-06-04T02:39:10.1323266Z 
2026-06-04T02:39:10.1323432Z ### REQ-INST-7
2026-06-04T02:39:10.1323684Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T02:39:10.1323892Z - Required stages: impl, unit
2026-06-04T02:39:10.1323908Z 
2026-06-04T02:39:10.1324064Z ### REQ-INST-8
2026-06-04T02:39:10.1324358Z - Title: Remote-control mode distinct from local operation
2026-06-04T02:39:10.1324538Z - Required stages: 
2026-06-04T02:39:10.1324555Z 
2026-06-04T02:39:10.1324709Z ### REQ-INST-9
2026-06-04T02:39:10.1325064Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T02:39:10.1325267Z - Required stages: impl, unit
2026-06-04T02:39:10.1325286Z 
2026-06-04T02:39:10.1325448Z ### REQ-INST-10
2026-06-04T02:39:10.1325856Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T02:39:10.1326047Z - Required stages: impl, unit
2026-06-04T02:39:10.1326065Z 
2026-06-04T02:39:10.1326230Z ### REQ-INST-11
2026-06-04T02:39:10.1326775Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T02:39:10.1326976Z - Required stages: impl, unit
2026-06-04T02:39:10.1326993Z 
2026-06-04T02:39:10.1327157Z ### REQ-INST-12
2026-06-04T02:39:10.1327715Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T02:39:10.1327908Z - Required stages: impl, unit
2026-06-04T02:39:10.1327926Z 
2026-06-04T02:39:10.1328079Z ### REQ-INST-13
2026-06-04T02:39:10.1328428Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T02:39:10.1328622Z - Required stages: impl, unit
2026-06-04T02:39:10.1328652Z 
2026-06-04T02:39:10.1328805Z ### REQ-INST-14
2026-06-04T02:39:10.1329892Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T02:39:10.1330070Z - Required stages: 
2026-06-04T02:39:10.1330087Z 
2026-06-04T02:39:10.1330251Z ### REQ-INST-15
2026-06-04T02:39:10.1331721Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T02:39:10.1331903Z - Required stages: 
2026-06-04T02:39:10.1331920Z 
2026-06-04T02:39:10.1332092Z ### REQ-REACH-1
2026-06-04T02:39:10.1332365Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T02:39:10.1332549Z - Required stages: 
2026-06-04T02:39:10.1332566Z 
2026-06-04T02:39:10.1332733Z ### REQ-REACH-2
2026-06-04T02:39:10.1333032Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T02:39:10.1333215Z - Required stages: 
2026-06-04T02:39:10.1333232Z 
2026-06-04T02:39:10.1333385Z ### REQ-MSG-1
2026-06-04T02:39:10.1334282Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T02:39:10.1334507Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1334526Z 
2026-06-04T02:39:10.1334682Z ### REQ-MSG-2
2026-06-04T02:39:10.1335207Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T02:39:10.1335401Z - Required stages: impl, unit
2026-06-04T02:39:10.1335418Z 
2026-06-04T02:39:10.1335583Z ### REQ-MSG-3
2026-06-04T02:39:10.1336343Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T02:39:10.1336754Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1336771Z 
2026-06-04T02:39:10.1336955Z ### REQ-NODE-IDENTITY
2026-06-04T02:39:10.1337381Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T02:39:10.1337590Z - Required stages: impl, unit
2026-06-04T02:39:10.1337610Z 
2026-06-04T02:39:10.1337778Z ### REQ-NET-1
2026-06-04T02:39:10.1338144Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T02:39:10.1338351Z - Required stages: impl, unit
2026-06-04T02:39:10.1338368Z 
2026-06-04T02:39:10.1338522Z ### REQ-NET-2
2026-06-04T02:39:10.1338865Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T02:39:10.1339050Z - Required stages: impl
2026-06-04T02:39:10.1339068Z 
2026-06-04T02:39:10.1339263Z ### REQ-NET-3
2026-06-04T02:39:10.1339880Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T02:39:10.1340059Z - Required stages: 
2026-06-04T02:39:10.1340078Z 
2026-06-04T02:39:10.1340272Z ### REQ-PAIR-1
2026-06-04T02:39:10.1340480Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T02:39:10.1340673Z - Required stages: impl, unit
2026-06-04T02:39:10.1340690Z 
2026-06-04T02:39:10.1340858Z ### REQ-PAIR-2
2026-06-04T02:39:10.1341110Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T02:39:10.1341312Z - Required stages: impl, unit
2026-06-04T02:39:10.1341329Z 
2026-06-04T02:39:10.1341653Z ### REQ-PAIR-3
2026-06-04T02:39:10.1341927Z - Title: Fetch current pairing code from any paired node
2026-06-04T02:39:10.1342129Z - Required stages: impl, unit
2026-06-04T02:39:10.1342147Z 
2026-06-04T02:39:10.1342304Z ### REQ-PAIR-4
2026-06-04T02:39:10.1342516Z - Title: Subnet naming on first pairing
2026-06-04T02:39:10.1342706Z - Required stages: impl, unit
2026-06-04T02:39:10.1342723Z 
2026-06-04T02:39:10.1342895Z ### REQ-PAIR-5
2026-06-04T02:39:10.1343561Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T02:39:10.1343759Z - Required stages: impl, unit
2026-06-04T02:39:10.1343790Z 
2026-06-04T02:39:10.1343960Z ### REQ-PAIR-6
2026-06-04T02:39:10.1344464Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T02:39:10.1344665Z - Required stages: impl, unit
2026-06-04T02:39:10.1344683Z 
2026-06-04T02:39:10.1344850Z ### REQ-PAIR-7
2026-06-04T02:39:10.1345168Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T02:39:10.1345352Z - Required stages: 
2026-06-04T02:39:10.1345369Z 
2026-06-04T02:39:10.1345523Z ### REQ-SEC-1
2026-06-04T02:39:10.1346309Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T02:39:10.1346495Z - Required stages: 
2026-06-04T02:39:10.1346513Z 
2026-06-04T02:39:10.1346671Z ### REQ-NOTIF-1
2026-06-04T02:39:10.1347386Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T02:39:10.1347576Z - Required stages: 
2026-06-04T02:39:10.1347593Z 
2026-06-04T02:39:10.1347760Z ### REQ-NOTIF-2
2026-06-04T02:39:10.1348285Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T02:39:10.1348456Z - Required stages: 
2026-06-04T02:39:10.1348474Z 
2026-06-04T02:39:10.1348636Z ### REQ-UPD-1
2026-06-04T02:39:10.1348862Z - Title: Peer-propagated update over P2P
2026-06-04T02:39:10.1349043Z - Required stages: 
2026-06-04T02:39:10.1349061Z 
2026-06-04T02:39:10.1349264Z ### REQ-UPD-2
2026-06-04T02:39:10.1349719Z - Title: All binaries signature-verified before handoff
2026-06-04T02:39:10.1350095Z - Required stages: impl, unit
2026-06-04T02:39:10.1350113Z 
2026-06-04T02:39:10.1350269Z ### REQ-UPD-3
2026-06-04T02:39:10.1350605Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T02:39:10.1350820Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1350837Z 
2026-06-04T02:39:10.1351170Z ### REQ-UPD-4
2026-06-04T02:39:10.1351527Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T02:39:10.1351719Z - Required stages: impl, unit
2026-06-04T02:39:10.1351737Z 
2026-06-04T02:39:10.1351904Z ### REQ-UPD-5
2026-06-04T02:39:10.1352165Z - Title: spt-core ripple-updates registered adapters
2026-06-04T02:39:10.1352364Z - Required stages: impl, unit
2026-06-04T02:39:10.1352396Z 
2026-06-04T02:39:10.1352565Z ### REQ-TERM-1
2026-06-04T02:39:10.1352887Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T02:39:10.1353095Z - Required stages: impl, unit
2026-06-04T02:39:10.1353113Z 
2026-06-04T02:39:10.1353269Z ### REQ-TERM-2
2026-06-04T02:39:10.1353631Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T02:39:10.1353829Z - Required stages: impl, unit
2026-06-04T02:39:10.1353846Z 
2026-06-04T02:39:10.1354000Z ### REQ-TERM-3
2026-06-04T02:39:10.1354268Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T02:39:10.1354595Z - Required stages: impl, unit
2026-06-04T02:39:10.1354615Z 
2026-06-04T02:39:10.1354784Z ### REQ-TERM-4
2026-06-04T02:39:10.1355505Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T02:39:10.1355706Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1355727Z 
2026-06-04T02:39:10.1356047Z ### REQ-FRONT-1
2026-06-04T02:39:10.1356377Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T02:39:10.1356571Z - Required stages: 
2026-06-04T02:39:10.1356589Z 
2026-06-04T02:39:10.1356766Z ### REQ-INSTALL-1
2026-06-04T02:39:10.1357133Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T02:39:10.1357316Z - Required stages: 
2026-06-04T02:39:10.1357332Z 
2026-06-04T02:39:10.1357495Z ### REQ-INSTALL-2
2026-06-04T02:39:10.1357770Z - Title: Marketplace-repackaging-friendly install
2026-06-04T02:39:10.1357953Z - Required stages: 
2026-06-04T02:39:10.1357985Z 
2026-06-04T02:39:10.1358152Z ### REQ-INSTALL-3
2026-06-04T02:39:10.1358425Z - Title: Idempotent + interactive-optional first run
2026-06-04T02:39:10.1358596Z - Required stages: 
2026-06-04T02:39:10.1358613Z 
2026-06-04T02:39:10.1358788Z ### REQ-INSTALL-4
2026-06-04T02:39:10.1360495Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T02:39:10.1360715Z - Required stages: 
2026-06-04T02:39:10.1360735Z 
2026-06-04T02:39:10.1360911Z ### REQ-MIGRATE-1
2026-06-04T02:39:10.1361237Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T02:39:10.1361415Z - Required stages: 
2026-06-04T02:39:10.1361431Z 
2026-06-04T02:39:10.1361597Z ### REQ-INFRA-1
2026-06-04T02:39:10.1361937Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T02:39:10.1362119Z - Required stages: 
2026-06-04T02:39:10.1362150Z 
2026-06-04T02:39:10.1362313Z ### REQ-DOCS-1
2026-06-04T02:39:10.1362700Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T02:39:10.1362875Z - Required stages: 
2026-06-04T02:39:10.1362904Z 
2026-06-04T02:39:10.1363059Z ### REQ-DOCS-2
2026-06-04T02:39:10.1363374Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T02:39:10.1363556Z - Required stages: 
2026-06-04T02:39:10.1363575Z 
2026-06-04T02:39:10.1363745Z ### REQ-DOCS-3
2026-06-04T02:39:10.1364338Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T02:39:10.1364531Z - Required stages: 
2026-06-04T02:39:10.1364547Z 
2026-06-04T02:39:10.1364714Z ### REQ-DOCS-4
2026-06-04T02:39:10.1365085Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T02:39:10.1365270Z - Required stages: 
2026-06-04T02:39:10.1365287Z 
2026-06-04T02:39:10.1365444Z ### REQ-DOCS-5
2026-06-04T02:39:10.1365825Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T02:39:10.1366218Z - Required stages: 
2026-06-04T02:39:10.1366243Z 
2026-06-04T02:39:10.1366449Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T02:39:10.1366818Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T02:39:10.1367014Z - Required stages: impl, unit
2026-06-04T02:39:10.1367033Z 
2026-06-04T02:39:10.1367270Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T02:39:10.1367571Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T02:39:10.1367764Z - Required stages: impl, unit
2026-06-04T02:39:10.1367783Z 
2026-06-04T02:39:10.1367991Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T02:39:10.1368244Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T02:39:10.1368436Z - Required stages: 
2026-06-04T02:39:10.1368456Z 
2026-06-04T02:39:10.1368657Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T02:39:10.1369006Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T02:39:10.1369278Z - Required stages: impl, unit
2026-06-04T02:39:10.1369465Z 
2026-06-04T02:39:10.1369686Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T02:39:10.1370237Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T02:39:10.1370431Z - Required stages: impl, unit
2026-06-04T02:39:10.1370467Z 
2026-06-04T02:39:10.1370677Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T02:39:10.1371045Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T02:39:10.1371413Z - Required stages: 
2026-06-04T02:39:10.1371433Z 
2026-06-04T02:39:10.1371637Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T02:39:10.1371893Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T02:39:10.1372077Z - Required stages: 
2026-06-04T02:39:10.1372097Z 
2026-06-04T02:39:10.1372311Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T02:39:10.1372621Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T02:39:10.1372825Z - Required stages: impl, unit
2026-06-04T02:39:10.1372842Z 
2026-06-04T02:39:10.1373047Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T02:39:10.1373334Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T02:39:10.1373538Z - Required stages: impl, int
2026-06-04T02:39:10.1373556Z 
2026-06-04T02:39:10.1373756Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T02:39:10.1374072Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T02:39:10.1374282Z - Required stages: impl, unit
2026-06-04T02:39:10.1374301Z 
2026-06-04T02:39:10.1374525Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T02:39:10.1374850Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T02:39:10.1375051Z - Required stages: impl, unit
2026-06-04T02:39:10.1375069Z 
2026-06-04T02:39:10.1375284Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T02:39:10.1375641Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T02:39:10.1375843Z - Required stages: impl, unit
2026-06-04T02:39:10.1375859Z 
2026-06-04T02:39:10.1376076Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T02:39:10.1376386Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T02:39:10.1376590Z - Required stages: impl, unit
2026-06-04T02:39:10.1376608Z 
2026-06-04T02:39:10.1376815Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T02:39:10.1377157Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T02:39:10.1377361Z - Required stages: impl, unit
2026-06-04T02:39:10.1377397Z 
2026-06-04T02:39:10.1377603Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T02:39:10.1378030Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T02:39:10.1378224Z - Required stages: impl, unit
2026-06-04T02:39:10.1378243Z 
2026-06-04T02:39:10.1378438Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T02:39:10.1378932Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T02:39:10.1379126Z - Required stages: impl, unit
2026-06-04T02:39:10.1379145Z 
2026-06-04T02:39:10.1379585Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T02:39:10.1380287Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T02:39:10.1380496Z - Required stages: impl, unit
2026-06-04T02:39:10.1380513Z 
2026-06-04T02:39:10.1380732Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T02:39:10.1381227Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T02:39:10.1381449Z - Required stages: impl, unit
2026-06-04T02:39:10.1381472Z 
2026-06-04T02:39:10.1381679Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T02:39:10.1382465Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T02:39:10.1382690Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1382707Z 
2026-06-04T02:39:10.1382914Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T02:39:10.1383782Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T02:39:10.1384001Z - Required stages: impl, unit
2026-06-04T02:39:10.1384019Z 
2026-06-04T02:39:10.1384246Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T02:39:10.1384498Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T02:39:10.1384695Z - Required stages: impl, unit
2026-06-04T02:39:10.1384715Z 
2026-06-04T02:39:10.1384920Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T02:39:10.1385360Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T02:39:10.1385573Z - Required stages: impl, unit
2026-06-04T02:39:10.1385591Z 
2026-06-04T02:39:10.1385813Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T02:39:10.1386115Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T02:39:10.1386319Z - Required stages: impl, unit
2026-06-04T02:39:10.1386336Z 
2026-06-04T02:39:10.1386522Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T02:39:10.1386849Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T02:39:10.1387055Z - Required stages: impl, unit
2026-06-04T02:39:10.1387092Z 
2026-06-04T02:39:10.1387294Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T02:39:10.1387577Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T02:39:10.1387771Z - Required stages: impl, unit
2026-06-04T02:39:10.1387787Z 
2026-06-04T02:39:10.1387989Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T02:39:10.1388282Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T02:39:10.1388503Z - Required stages: impl, unit
2026-06-04T02:39:10.1388522Z 
2026-06-04T02:39:10.1388735Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T02:39:10.1389085Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T02:39:10.1389351Z - Required stages: impl, unit
2026-06-04T02:39:10.1389555Z 
2026-06-04T02:39:10.1390112Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T02:39:10.1390485Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T02:39:10.1390694Z - Required stages: impl, unit
2026-06-04T02:39:10.1390711Z 
2026-06-04T02:39:10.1390940Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T02:39:10.1391272Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T02:39:10.1391477Z - Required stages: impl, unit
2026-06-04T02:39:10.1391493Z 
2026-06-04T02:39:10.1391716Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T02:39:10.1392007Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T02:39:10.1392221Z - Required stages: impl, unit
2026-06-04T02:39:10.1392242Z 
2026-06-04T02:39:10.1392457Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T02:39:10.1392890Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T02:39:10.1393085Z - Required stages: impl, unit
2026-06-04T02:39:10.1393103Z 
2026-06-04T02:39:10.1393297Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T02:39:10.1393726Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T02:39:10.1393922Z - Required stages: impl, unit
2026-06-04T02:39:10.1393939Z 
2026-06-04T02:39:10.1394346Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T02:39:10.1394760Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T02:39:10.1394965Z - Required stages: impl, unit
2026-06-04T02:39:10.1394982Z 
2026-06-04T02:39:10.1395196Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T02:39:10.1395707Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T02:39:10.1395931Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1395948Z 
2026-06-04T02:39:10.1396141Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T02:39:10.1396652Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T02:39:10.1396861Z - Required stages: impl, unit
2026-06-04T02:39:10.1396879Z 
2026-06-04T02:39:10.1397586Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T02:39:10.1398547Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T02:39:10.1398863Z - Required stages: impl, unit, int
2026-06-04T02:39:10.1398883Z 
2026-06-04T02:39:10.1399250Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T02:39:10.1401412Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T02:39:10.1401952Z - Required stages: 
2026-06-04T02:39:10.1401978Z 
2026-06-04T02:39:10.1402257Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T02:39:10.1403698Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T02:39:10.1403968Z - Required stages: 
2026-06-04T02:39:10.1403988Z 
2026-06-04T02:39:10.1404235Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T02:39:10.1405726Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T02:39:10.1406039Z - Required stages: impl, unit
2026-06-04T02:39:10.1406058Z 
2026-06-04T02:39:10.1406316Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T02:39:10.1407497Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T02:39:10.1407739Z - Required stages: impl, unit
2026-06-04T02:39:10.1407788Z 
2026-06-04T02:39:10.1408084Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T02:39:10.1410318Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T02:39:10.1410596Z - Required stages: impl, unit
2026-06-04T02:39:10.1410618Z 
2026-06-04T02:39:10.1410907Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T02:39:10.1412567Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T02:39:10.1412908Z - Required stages: doc, impl, unit
2026-06-04T02:39:10.1412930Z 
2026-06-04T02:39:10.1413223Z ## How to report back
2026-06-04T02:39:10.1413246Z 
2026-06-04T02:39:10.1413664Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T02:39:10.1413684Z 
2026-06-04T02:39:10.1413875Z     {
2026-06-04T02:39:10.1414135Z       "code": "requirement_quality",
2026-06-04T02:39:10.1422202Z       "requirementId": "REQ-...",
2026-06-04T02:39:10.1423148Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T02:39:10.1423364Z       "message": "<short reason>",
2026-06-04T02:39:10.1423616Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T02:39:10.1423768Z     }
2026-06-04T02:39:10.1423788Z 
2026-06-04T02:39:10.1424171Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T02:39:10.1424482Z deterministic findings above don't need to be repeated.
